// 管理用户相关
import {ref} from 'vue'
import { loginAPI } from '@/apis/user';
import { defineStore } from "pinia";
import { useCartStore } from '@/stores/cartStore'
import { mergeCartAPI } from '@/apis/cart';
export const useUserStore = defineStore('user', ()=>{
    const cartStore = useCartStore()
    // 定义用户数据的state
    const userInfo = ref({})
    // 定义获取接口数据的action
    const getUserInfo = async ({account, password})=>{
      const res = await loginAPI({account, password})
      userInfo.value = res.result
      // 合并购物车操作
      await mergeCartAPI(cartStore.cartList.map(item=>{
        return {
          skuId: item.skuId,
          selected: item.selected,
          count: item.count
        }
      }))
      cartStore.updateNewList()
    }

    // 清除用户信息
    const clearUserInfo = ()=>{
      userInfo.value = {}
      // 清除购物车的action
      cartStore.clearCart()
    }

    // 以对象的格式返回
    return {
      userInfo,
      getUserInfo,
      clearUserInfo,
    }
},
{
  persist: true,
}
)
